package com.model.dto.sys.roleController;

import com.common.anntation.SetNotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Set;

@Data
public class CreateRoleDTO {
    @ApiModelProperty(value = "角色名",required = true)
    @NotNull(message = "角色名不能为空")
    @Size(min = 0, max = 50, message = "角色名长度限制为50")
    String name;

    @ApiModelProperty(value = "描述")
    @Size(min = 0, max = 1024, message = "描述长度限制为1024")
    String synopsis;

    @ApiModelProperty(value = "接口权限",required = true)
    @NotNull(message = "permissions不能为空")
    @SetNotNull()
    Set<String> permissions;

    @ApiModelProperty(value = "按钮权限",required = true)
    @NotNull(message = "buttons不能为空")
    @SetNotNull()
    Set<String> buttons;

    @NotNull(message = "数据范围不能为空")
    @ApiModelProperty(value = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）",allowableValues = "0,1,2,3,4")
    @Min(value = 0, message = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）")
    @Max(value = 4, message = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）")
    Byte dataScope;

    @ApiModelProperty(value = "绑定的用户id列表")
    @SetNotNull()
    Set<Long> sysUserIds;

    @ApiModelProperty(value = "绑定的部门id列表")
    @SetNotNull()
    Set<Long> deptIds;

    @ApiModelProperty(value = "绑定的菜单id列表")
    @SetNotNull()
    Set<Long> menuIds;
}
